커리큘럼

NOTE

개요 코딩테스트 대비 12주 학습 로드맵. 주차별 주제·학습 내용·Java 활용 팁·백준 연습 문제를 한 표로 정리했다.

📌 12주 커리큘럼

단계주제학습 내용Java 활용 팁연습 문제 예시
1주차시간 복잡도 & Java I/O 최적화- 알고리즘 성능 지표: 시간 복잡도·공간 복잡도(Big-O)
- 자바 표준 입출력: BufferedReader, BufferedWriter, StringTokenizer 활용법
- BufferedReader + StringBuilder로 입출력 최소화
- System.nanoTime()으로 실행 시간 측정
백준 2557, 2438
2주차자료구조 기초: 배열·문자열- 배열 탐색 및 조작
- String, StringBuilder 차이
- 부분 문자열 검색 (슬라이딩 윈도우 기초)
- StringBuilder.reverse(), toCharArray() 활용백준 1316, 1676
3주차선형 자료구조: 스택·큐·덱- Stack, Queue(LinkedList), Deque(ArrayDeque) 사용법
- 후위표기식·괄호 문자열 검사
- ArrayDeque가 가장 빠른 구현체
- 제네릭으로 타입 안정성 확보
백준 9012, 10828
4주차정렬 알고리즘 & 이진 탐색- 기본 정렬: 선택·버블·삽입 정렬
- 고급 정렬: 병합(Merge), 퀵(Quick) 정렬
- 이진 탐색(Binary Search) 원리
- Arrays.sort()의 내부 구현 이해
- 직접 구현한 이진 탐색과 Arrays.binarySearch() 비교
백준 1920, 2751
5주차투 포인터 & 슬라이딩 윈도우- 투 포인터: 정렬된 배열에서 합 찾기, 부분합
- 슬라이딩 윈도우: 고정·가변 길이 합 계산
- 포인터 대신 인덱스 2개 관리
- 윈도우 합을 long으로 관리
백준 2003, 1806
6주차해시 & 맵(HashMap/HashSet)- 해시 테이블 원리(충돌 해결)
- HashMap, HashSet, LinkedHashMap 활용
- Map.getOrDefault(), computeIfAbsent() 활용백준 1764, 1620
7주차그리디 알고리즘- 그리디 설계 기법: 탐욕 선택 특성
- 대표 문제 패턴: 활동 선택, 배낭, 동전 거스름돈
- 우선순위 큐(PriorityQueue)를 그리디에 응용백준 11047, 1931
8주차분할 정복 & 재귀- 분할 정복 패러다임
- 재귀 함수 설계 시 기저 사례 설정
- 병합 정렬, 퀵 정렬 재귀 구현
- 재귀 깊이 주의(스택 오버플로우 방지)
- Tail Recursion 최적화 이해
백준 11729, 1992
9주차동적 계획법(DP) 기초- 1차원 DP: 피보나치, 계단 오르기, 0-1 배낭 문제
- 메모이제이션 vs 태뷸레이션
- int[] dp 초기화와 Arrays.fill() 활용백준 2193, 12865
10주차동적 계획법(DP) 심화- 2차원 DP: 최장 공통 부분 수열(LCS), 편집 거리
- 최장 증가 부분 수열(LIS)
- List<Integer> lis + 이진 탐색 응용백준 9251, 11053
11주차그래프 기초: BFS·DFS- 인접리스트 vs 인접행렬
- 너비 우선 탐색(BFS), 깊이 우선 탐색(DFS) 구현
- boolean[] visited로 순환 방지
- Queue vs Stack 활용
백준 2178, 2606
12주차그래프 심화: 최단경로·MST- 가중치 그래프 최단경로: Dijkstra, Bellman-Ford
- 최소 신장 트리(MST): Prim, Kruskal + Union-Find
- PriorityQueue<Node>로 Dijkstra 최적화
- union-find 배열 최적화
백준 1753, 1197

🔗 참고